/**
 * @author
 * @createtime
 * @class ContractForm
 * @extends Ext.Window
 * @description Contract表单
 */
ContractForm = Ext.extend(Ext.Window, {
	//内嵌FormPanel
	formPanel : null,
	//构造函数
	constructor : function(_cfg) {
		Ext.applyIf(this, _cfg);
		//必须先初始化组件
		this.initUIComponents();
		ContractForm.superclass.constructor.call(this, {
			id : 'ContractFormWin',
			layout : 'fit',
			items : this.formPanel,
			modal : true,
			height : 200,
			width : 400,
			maximizable : true,
			title : '[Contract]详细信息',
			buttonAlign : 'center',
			buttons : this.buttons
		});
	},//end of the constructor
	//初始化组件
	initUIComponents : function() {
		this.formPanel = new Ext.FormPanel({
			layout : 'form',
			trackResetOnLoad : true,
			bodyStyle : 'padding:10px 10px 10px 10px',
			border : false,
			url : __ctxPath + '/project/saveContract.do',
			id : 'ContractForm',
			defaults : {
				anchor : '98%,98%'
			},
			defaultType : 'textfield',
			items : [{
						name : 'contract.id',
						id : 'id',
						xtype : 'hidden',
						value : this.id == null ? '' : this.id
					}, {
						fieldLabel : '项目',
						name : 'contract.proId',
						id : 'proId'
					}, {
						fieldLabel : '分类',
						name : 'contract.category',
						id : 'category'
					}, {
						fieldLabel : '合同内容',
						name : 'contract.content',
						id : 'content'
					}, {
						fieldLabel : '合同编号',
						name : 'contract.contractNo',
						id : 'contractNo'
					}, {
						fieldLabel : '乙方单位',
						name : 'contract.secondPartyUnit',
						id : 'secondPartyUnit'
					}, {
						fieldLabel : '属性',
						name : 'contract.property',
						id : 'property'
					}, {
						fieldLabel : '供应商级别',
						name : 'contract.suppliersLevel',
						id : 'suppliersLevel'
					}, {
						fieldLabel : '合同版本',
						name : 'contract.contractVersion',
						id : 'contractVersion'
					}, {
						fieldLabel : '合同形式',
						name : 'contract.contractForm',
						id : 'contractForm'
					}, {
						fieldLabel : '合同总价',
						name : 'contract.contractAmount',
						id : 'contractAmount'
					}, {
						fieldLabel : '付款方式',
						name : 'contract.payType',
						id : 'payType'
					}, {
						fieldLabel : '质量、安全、进度约定',
						name : 'contract.appointment',
						id : 'appointment'
					}, {
						fieldLabel : '合同数量 原件总数',
						name : 'contract.originalCopyNum',
						id : 'originalCopyNum'
					}, {
						fieldLabel : '返回对方数',
						name : 'contract.giveCopyNum',
						id : 'giveCopyNum'
					}, {
						fieldLabel : '',
						name : 'contract.attachIds',
						id : 'attachIds'
					}, {
						fieldLabel : '',
						name : 'contract.attachFiles',
						id : 'attachFiles'
					}, {
						fieldLabel : '施工范围',
						name : 'contract.constructScope',
						id : 'constructScope'
					}, {
						fieldLabel : '建设单位',
						name : 'contract.constructionUnit',
						id : 'constructionUnit'
					}, {
						fieldLabel : '总包单位',
						name : 'contract.mainIncludeUnit',
						id : 'mainIncludeUnit'
					}, {
						fieldLabel : '设计单位',
						name : 'contract.designUnit',
						id : 'designUnit'
					}, {
						fieldLabel : '造价咨询单位',
						name : 'contract.consultUnit',
						id : 'consultUnit'
					}, {
						fieldLabel : '监理单位及其权限',
						name : 'contract.supervisionUnit',
						id : 'supervisionUnit'
					}, {
						fieldLabel : '业主方授权项目代表及其权限',
						name : 'contract.ownerRepresent',
						id : 'ownerRepresent'
					}, {
						fieldLabel : '安全文明施工',
						name : 'contract.secureConstruct',
						id : 'secureConstruct'
					}, {
						fieldLabel : '结算方式',
						name : 'contract.balanceType',
						id : 'balanceType'
					}, {
						fieldLabel : '变更、签证处理条款',
						name : 'contract.changeSignProtocol',
						id : 'changeSignProtocol'
					}, {
						fieldLabel : '结算审计时间及超额审计费用条款',
						name : 'contract.balanceTimeProtocol',
						id : 'balanceTimeProtocol'
					}, {
						fieldLabel : '工程款支付',
						name : 'contract.engineeringPay',
						id : 'engineeringPay'
					}, {
						fieldLabel : '总包、设计、水电费条款',
						name : 'contract.mainDesignProtocol',
						id : 'mainDesignProtocol'
					}, {
						fieldLabel : '甲供材处理条款',
						name : 'contract.supplyProtocol',
						id : 'supplyProtocol'
					}, {
						fieldLabel : '其他违约责任',
						name : 'contract.otherDuty',
						id : 'otherDuty'
					}, {
						fieldLabel : '特立专用条款',
						name : 'contract.specialProtocol',
						id : 'specialProtocol'
					}, {
						fieldLabel : '工期',
						name : 'contract.projectLimit',
						id : 'projectLimit'
					}, {
						fieldLabel : '工期可顺延条款',
						name : 'contract.projectLimitProtocol',
						id : 'projectLimitProtocol'
					}, {
						fieldLabel : '质量要求',
						name : 'contract.qualityRequire',
						id : 'qualityRequire'
					}, {
						fieldLabel : '质量处罚条款',
						name : 'contract.qualityPunishProtocol',
						id : 'qualityPunishProtocol'
					}

			]
		});
		//加载表单对应的数据	
		this.initData();
		//初始化功能按钮
		this.buttons = [{
					text : '保存',
					iconCls : 'btn-save',
					handler : this.save.createCallback(this.formPanel, this)
				}, {
					text : '重置',
					iconCls : 'btn-reset',
					handler : this.reset.createCallback(this.formPanel)
				}, {
					text : '取消',
					iconCls : 'btn-cancel',
					handler : this.cancel.createCallback(this)
				}];
	},//end of the initcomponents
	/**
	 * 初始化数据
	 * 
	 * @param {}
	 *            formPanel
	 */
	initData : function() {
		//加载表单对应的数据	
		if (this.id != null && this.id != 'undefined') {
			this.formPanel.getForm().load({
				deferredRender : false,
				url : __ctxPath + '/project/getContract.do?id=' + this.id,
				waitMsg : '正在载入数据...',
				success : function(form, action) {
					var jsonData = Ext.util.JSON.decode(action.response.responseText);
					var res = jsonData.data;
					//Ext.getCmp("").originalValue=
				},
				failure : function(form, action) {
				}
			});
		}
	},
	/**
	 * 重置
	 * 
	 * @param {}
	 *            formPanel
	 */
	reset : function(formPanel) {
		formPanel.getForm().reset();
	},
	/**
	 * 取消
	 * 
	 * @param {}
	 *            window
	 */
	cancel : function(window) {
		window.close();
	},
	/**
	 * 保存记录
	 */
	save : function(formPanel, window) {
		if (formPanel.getForm().isValid()) {
			formPanel.getForm().submit({
				method : 'POST',
				waitMsg : '正在提交数据...',
				success : function(fp, action) {
					Ext.ux.Toast.msg('操作信息', '成功保存信息！');
					var gridPanel = Ext.getCmp('ContractGrid');
					if (gridPanel != null) {
						gridPanel.getStore().reload();
					}
					window.close();
				},
				failure : function(fp, action) {
					Ext.MessageBox.show({
						title : '操作信息',
						msg : '信息保存出错，请联系管理员！',
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR
					});
					window.close();
				}
			});
		}
	}//end of save

});